//导入fs模块
const fs = require('fs');
//导入文件路径模块
const path = require('path');
let newData = [];
//读取data文件
fs.readFile(path.join(__dirname,'../home/data.txt'),'utf8',function(err,dataStr){
    //如果失败，输出失败原因
    if(err){
        return console.log('读取文件失败！'+err.message);
    }
    //如果成功，就做进一步处理
    else{
        let DATA = dataStr.split('\r\n');//分隔每一行组成数组
        DATA.shift();//去掉第一个元素
        //把数组中的每一个元素拆分成对象
        for(let i=0;i<DATA.length;i++){
            function label(){
                let labelArr = DATA[i].slice(DATA[i].indexOf('[')+1,DATA[i].indexOf(']')).replace(/'/g,'').split(',');
                let labelStr = '';
                for(item of labelArr){
                    labelStr += item+'·'
                }
                labelStr = labelStr.slice(0,-1);
                return labelStr
            }

            //处理标题的函数
            function title(){
                let titleStr = DATA[i].slice(DATA[i].indexOf(']')+2,DATA[i].indexOf('$'));
                if(titleStr.indexOf(',')<2){
                    titleStr=titleStr.replace(',','');
                }
                return titleStr
            }
            //处理文章的函数
            function article(){
                let articleStr = DATA[i].slice(DATA[i].indexOf('$')+2,DATA[i].indexOf('https'));
                if(articleStr.indexOf('None')){
                    articleStr=articleStr.replace('None','').slice(0,-1);                
                }
                return articleStr
            }
            //处理链接的函数
            let links =  DATA[i].slice(DATA[i].indexOf('https')).split(',');
            function link(){
                if(links.length == 2){
                    links[0]=links[0].replace('_','~');
                    links[0]=links[0].replace(/_/g,':')
                }
                if(links.length == 1){
                    links.unshift('None');
                }
                if(links.length == 3){
                    links.shift()
                }
            }
            link();
            //数据对象
            let obj = {
                username:DATA[i].slice(0,DATA[i].indexOf(',')).trim(),
                date:DATA[i].slice(DATA[i].indexOf(',')+1,DATA[i].indexOf('前')+1).trim(),
                label:label(),
                title:title().trim(),
                article:article().trim(),
                img:links[0],
                homepage:links[1],
            }
            newData.push(obj);
        }
    }
})

//暴露数据
exports.get_article = (req,res)=>{
    return res.send(newData);
}